<?php

// Vérification du joueur connecté
if(!isset($_SESSION['playerId'])){
	throw new Exception('Merci de vous authentifier.', HTTP_UNAUTHORIZED);
}

//Détection de l'existence de la partie
if(!isset($_SESSION['gameId']) || !is_file(DIR_GAME . $_SESSION['gameId'])){
    throw new Exception('La partie n\'existe pas.', HTTP_NOTFOUND);
}

//Récupération de la partie
$game = loadGame($_SESSION['gameId']);

//Récupération du dernier humain
$lastHumanPlayer = getLastHumanPlayer($game);

// Si la partie est terminée, on renvoie directement le résultat
// Seul la connexion du dernier joueur humain peut faire avancer les CPU qui le suivent
if(isGameOver($game) || $game['players'][$game["playerTurn"]]['type'] != 'cpu' || $lastHumanPlayer != $_SESSION['playerId']){
	echo displayGameToClient($game);
	return;
}

//Tour des joueurs CPU qui suivent le dernier joueur humain
while(isset($game["players"][$game["playerTurn"]]['type']) && $game["players"][$game["playerTurn"]]['type'] == 'cpu'){
	//Calcul de la meilleure combinaison possible
	gamelog(sprintf('[%s] Le joueur %s reflechie.', $game['id'], $game["playerTurn"]));
	$add = getBestAdd($game, $cardCollection);
	
	//Vérification de ce que joue le player
	checkAdd($game, $add, $game["playerTurn"], $cardCollection);
	
	//Mise à jour du jeu
	$game = updateGame($game, $add, $cardCollection);
}

//Enregistrement de la partie
saveGame($game);

//Affichage au client
echo displayGameToClient($game);

